Telegram Group & Telegram Channel
🔁 Как перевернуть последовательность в Python: срезы, .reverse() и reversed()

Иногда нужно пройтись по списку в обратном порядке. Python предлагает как минимум три способа сделать это. Разберём, чем они отличаются и когда что использовать.

1️⃣ Срез с шагом -1

Срезы в Python поддерживают формат [start:stop:step]. Если шаг отрицательный, список читается справа налево:
colors = ["purple", "blue", "green", "pink", "red"]
print(colors[::-1])
# ['red', 'pink', 'green', 'blue', 'purple']


Можно использовать это прямо в цикле:
for color in colors[::-1]:
print("I like", color)


Но есть нюанс: этот трюк работает только с последовательностями, то есть объектами, у которых есть индексация (списки, строки, кортежи).

2️⃣ Метод .reverse()

Метод .reverse() переворачивает список на месте, изменяя оригинальный объект:
colors = ["purple", "blue", "green", "pink", "red"]
colors.reverse()
print(colors)
# ['red', 'pink', 'green', 'blue', 'purple']


Важно:
— Метод не возвращает новый список, а изменяет оригинал.
— Работает только с типом list. Строки, кортежи и другие объекты не поддерживают .reverse().

3️⃣ Функция reversed()

Наиболее универсальный и «питоничный» способ — использовать встроенную функцию reversed():
colors = ["purple", "blue", "green", "pink", "red"]
for color in reversed(colors):
print("I like", color)


Плюсы reversed():
— Работает на любых обратимых итерируемых объектах, не только на списках.
— Не копирует список — возвращает итератор, который идёт с конца.
— Оригинальный объект не изменяется.

Можно использовать next() для получения элементов по одному:
r = reversed(colors)
next(r) # 'red'
next(r) # 'pink'


Даже со словарями

Словари в Python 3.7+ сохраняют порядок добавления. Значит, их можно тоже «перевернуть»:
capitals = {
"New South Wales": "Sydney",
"Victoria": "Melbourne",
"Western Australia": "Perth",
}

for state, capital in reversed(capitals.items()):
print(f"The capital of {state} is {capital}")


Как reversed() похож на другие помощники циклов:
enumerate() — добавляет индексацию
zip() — объединяет несколько последовательностей
reversed() — переворачивает порядок обхода

for i, color in enumerate(colors, 1):
print(f"{i}. {color}")


Что нельзя «перевернуть»

Не все объекты в Python можно перевернуть. Например, файлы и генераторы не поддерживают reversed(), потому что у них нет фиксированной длины и индексов.

Вывод

• Если нужно просто получить копию списка в обратном порядке — используйте colors[::-1].
• Если хотите перевернуть список на месте — метод .reverse().
• Если важно не трогать оригинал, сэкономить память и работать с любыми итерируемыми объектами — используйте reversed().


💬 Поделитесь в комментариях, каким способом чаще пользуетесь вы.
🔁 Репостните коллеге, который до сих пор пишет for i in range(len(...)).

Библиотека питониста #буст
Please open Telegram to view this post
VIEW IN TELEGRAM



tg-me.com/pyproglib/6828
Create:
Last Update:

🔁 Как перевернуть последовательность в Python: срезы, .reverse() и reversed()

Иногда нужно пройтись по списку в обратном порядке. Python предлагает как минимум три способа сделать это. Разберём, чем они отличаются и когда что использовать.

1️⃣ Срез с шагом -1

Срезы в Python поддерживают формат [start:stop:step]. Если шаг отрицательный, список читается справа налево:

colors = ["purple", "blue", "green", "pink", "red"]
print(colors[::-1])
# ['red', 'pink', 'green', 'blue', 'purple']


Можно использовать это прямо в цикле:
for color in colors[::-1]:
print("I like", color)


Но есть нюанс: этот трюк работает только с последовательностями, то есть объектами, у которых есть индексация (списки, строки, кортежи).

2️⃣ Метод .reverse()

Метод .reverse() переворачивает список на месте, изменяя оригинальный объект:
colors = ["purple", "blue", "green", "pink", "red"]
colors.reverse()
print(colors)
# ['red', 'pink', 'green', 'blue', 'purple']


Важно:
— Метод не возвращает новый список, а изменяет оригинал.
— Работает только с типом list. Строки, кортежи и другие объекты не поддерживают .reverse().

3️⃣ Функция reversed()

Наиболее универсальный и «питоничный» способ — использовать встроенную функцию reversed():
colors = ["purple", "blue", "green", "pink", "red"]
for color in reversed(colors):
print("I like", color)


Плюсы reversed():
— Работает на любых обратимых итерируемых объектах, не только на списках.
— Не копирует список — возвращает итератор, который идёт с конца.
— Оригинальный объект не изменяется.

Можно использовать next() для получения элементов по одному:
r = reversed(colors)
next(r) # 'red'
next(r) # 'pink'


Даже со словарями

Словари в Python 3.7+ сохраняют порядок добавления. Значит, их можно тоже «перевернуть»:
capitals = {
"New South Wales": "Sydney",
"Victoria": "Melbourne",
"Western Australia": "Perth",
}

for state, capital in reversed(capitals.items()):
print(f"The capital of {state} is {capital}")


Как reversed() похож на другие помощники циклов:
enumerate() — добавляет индексацию
zip() — объединяет несколько последовательностей
reversed() — переворачивает порядок обхода

for i, color in enumerate(colors, 1):
print(f"{i}. {color}")


Что нельзя «перевернуть»

Не все объекты в Python можно перевернуть. Например, файлы и генераторы не поддерживают reversed(), потому что у них нет фиксированной длины и индексов.

Вывод

• Если нужно просто получить копию списка в обратном порядке — используйте colors[::-1].
• Если хотите перевернуть список на месте — метод .reverse().
• Если важно не трогать оригинал, сэкономить память и работать с любыми итерируемыми объектами — используйте reversed().


💬 Поделитесь в комментариях, каким способом чаще пользуетесь вы.
🔁 Репостните коллеге, который до сих пор пишет for i in range(len(...)).

Библиотека питониста #буст

BY Библиотека питониста | Python, Django, Flask




Share with your friend now:
tg-me.com/pyproglib/6828

View MORE
Open in Telegram


Библиотека питониста | Python Django Flask Telegram | DID YOU KNOW?

Date: |

Telegram Gives Up On Crypto Blockchain Project

Durov said on his Telegram channel today that the two and a half year blockchain and crypto project has been put to sleep. Ironically, after leaving Russia because the government wanted his encryption keys to his social media firm, Durov’s cryptocurrency idea lost steam because of a U.S. court. “The technology we created allowed for an open, free, decentralized exchange of value and ideas. TON had the potential to revolutionize how people store and transfer funds and information,” he wrote on his channel. “Unfortunately, a U.S. court stopped TON from happening.”

For some time, Mr. Durov and a few dozen staffers had no fixed headquarters, but rather traveled the world, setting up shop in one city after another, he told the Journal in 2016. The company now has its operational base in Dubai, though it says it doesn’t keep servers there.Mr. Durov maintains a yearslong friendship from his VK days with actor and tech investor Jared Leto, with whom he shares an ascetic lifestyle that eschews meat and alcohol.

Библиотека питониста | Python Django Flask from us


Telegram Библиотека питониста | Python, Django, Flask
FROM USA